package com.ruoyi.oss.service;

import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.oss.entity.UploadResult;

import java.io.InputStream;

/**
 * 对象存储策略
 * @author 最爱喝兽奶
 * @create 2022/6/13
 **/
public interface IOssStrategy {

    // 创建桶
    void createBucket();

    /**
     * 获取服务器类型
     * @return
     */
    String getServiceType();

    /**
     * 上传文件的方法，传入的数据为文件的字节数组
     * @param data 文件
     * @param path 文件在minio中的路径
     * @param contentType http类型
     * @return
     */
    UploadResult upload(byte[] data, String path, String contentType);

    /**
     * @param path 文件在minio中的路径
     */
    void delete(String path);

    /**
     * 以文件流的形式传输文件
     * @param is
     * @param path
     * @param contentType
     * @return
     */
    UploadResult upload(InputStream is, String path, String contentType);

    /**
     * 上传minio的文件是具有指定路径的
     * @param is
     * @param suffix
     * @param contentType
     * @return
     */
    UploadResult uploadSuffix(InputStream is, String suffix, String contentType);

    UploadResult uploadSuffix(byte[] data, String suffix, String contentType);



}
